零刻 EQ14-N150 开启核显 SR-IOV 虚拟化
2026年07月12日
985字

零刻 EQ14-N150 开启核显 SR-IOV 虚拟化

一、概述

SR-IOV(Single Root I/O Virtualization)是一种硬件虚拟化技术,允许将单个物理 GPU 虚拟出多个独立的虚拟功能(VF),分别分配给不同的虚拟机使用。对于 Intel 11 代及以后的 CPU,Intel 全面转向了 SR-IOV 方案,性能损耗极低,最多可切分出 7 个虚拟功能。

二、硬件

  • 设备:零刻 EQ14(此次验证设备)
  • CPU:Intel N150(Twin Lake 架构)
  • 系统:Proxmox VE 9.2.3
  • 驱动i915-sriov-dkms 2026.05.06 版本

三、BIOS 设置

重启设备,开机时按 Delete 键进入 BIOS,确保以下选项正确设置:

选项状态
Intel VMX(虚拟化技术)Enabled(开启)
VT-dEnabled(开启)
IOMMUEnabled(开启)
SR-IOVEnabled(开启)
Secure Boot(安全启动)Disabled(关闭)

保存设置并退出 BIOS

四、PVE 系统配置

4.1 更新系统并安装依赖

在 PVE 的 Shell 中执行以下命令:

My terminal window
apt update
apt install -y build-essential git dkms sysfsutils proxmox-headers-$(uname -r) proxmox-kernel-$(uname -r) intel-gpu-tools

4.2 安装 i915-sriov-dkms 驱动

i915-sriov-dkms 是社区维护的 Linux i915 驱动扩展,为 Intel 核显添加了 SR-IOV 支持。

根据自己内核版本 7.0.6,下载对应的 2026.05.06 版本驱动:

My terminal window
wget https://github.com/strongtz/i915-sriov-dkms/releases/download/2026.05.06/i915-sriov-dkms_2026.05.06_amd64.deb
dpkg -i i915-sriov-dkms_2026.05.06_amd64.deb

📌 注意:如果你的 PVE 内核版本不同,请访问 strongtz/i915-sriov-dkms Releases 页面,选择与内核版本匹配的驱动包。

4.3 配置 GRUB 引导参数

编辑 GRUB 配置文件:

My terminal window
nano /etc/default/grub

找到 GRUB_CMDLINE_LINUX_DEFAULT,修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe"

参数说明

  • intel_iommu=on:开启 IOMMU
  • iommu=pt:提升直通性能
  • i915.enable_guc=3:启用 GuC 和 HuC 微码,用于硬件加速
  • i915.max_vfs=7:设置最大可创建的虚拟功能数量上限
  • module_blacklist=xe:屏蔽原生 xe 驱动,强制使用 DKMS 版本

4.4 设置开机自动创建虚拟功能

创建 systemd 服务,确保每次开机自动创建指定数量的 VF(此处以 4 个为例):

My terminal window
cat > /etc/systemd/system/sriov-vf.service <<EOF
[Unit]
Description=Create SR-IOV VFs for iGPU
Before=network.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 4 > /sys/bus/pci/devices/0000:00:02.0/sriov_numvfs"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
systemctl enable sriov-vf.service

📌 如需调整虚拟显卡数量,修改 echo 4 中的数字即可。

4.5 重启 PVE

My terminal window
reboot

五、验证 SR-IOV 是否成功

5.1 确认 i915 驱动已加载

My terminal window
lsmod | grep i915

应有 i915 模块显示。

5.2 确认虚拟功能已创建

My terminal window
lspci | grep VGA

成功时输出类似:

00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]
00:02.1 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]
00:02.2 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]
00:02.3 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]
00:02.4 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]

其中 00:02.0 是物理主卡(保留给 PVE 宿主机使用),00:02.1 ~ 00:02.4 是刚刚创建的 4 个虚拟显卡。

5.3 检查 systemd 服务状态

My terminal window
systemctl status sriov-vf.service

六、分配虚拟显卡给虚拟机

6.1 操作步骤

  1. 在 PVE Web 管理界面,选择目标虚拟机,点击 硬件添加PCI 设备
  2. 点原始设备,在设备列表中选择一个虚拟显卡(如 0000:00:02.1)。
  3. 不要勾选 所有功能不要勾选“主 GPU”。
  4. 点击 新增

⚠️ 绝对不要00:02.0(物理主卡),否则会导致 PVE 宿主机死机或黑屏。

6.2 虚拟机内安装驱动

  • Windows 虚拟机:安装 Intel 核显驱动(从 Intel 官网下载对应版本)。
  • Linux 虚拟机:安装对应的 i915 驱动。

七、常见问题排查

7.1 modprobe i915 报错 No such device

原因:内核命令行中存在 nomodeset,阻止了 i915 绑定设备。

解决:检查并清除所有 nomodeset 来源:

My terminal window
grep -r "nomodeset" /etc/default/grub* /etc/grub.d/

7.2 echo 创建 VF 时报 I/O error

原因:i915 驱动未正确加载,或 sriov_numvfs 文件不存在。

解决

  1. 确认 lsmod | grep i915 有输出。
  2. 检查 dmesg | grep -i i915 | tail -30 查看驱动加载日志。

7.3 Secure Boot 阻止驱动加载

如果 modprobe i915 报错 Key was rejected by service,说明 Secure Boot(安全启动) 未关闭。

解决

  1. 进入 BIOS 确认 Secure Boot 已 Disabled

7.4 内核更新后驱动失效

每次 PVE 内核更新后,DKMS 通常会自动重建模块。如未自动重建,可手动执行:

My terminal window
dkms autoinstall
update-initramfs -u -k all
reboot

八、重要提醒

项目说明
主卡 00:02.0保留给 PVE 宿主机使用,禁止直通给任何虚拟机
无视频输出SR-IOV 虚拟显卡无法通过 HDMI/DP 输出画面,仅用于计算加速
驱动维护i915-sriov-dkms 是社区维护项目,非 Intel 官方驱动,需关注项目更新
Secure Boot必须保持 关闭 状态,否则第三方驱动无法加载
备份数据操作涉及系统底层配置,建议提前备份重要数据

九、参考资源

# EQ14
# SR-IOV
# N150
作者信息:Cat
发表于:2026年07月12日